package chapter02;

/**
 * 复合练习题 制作猜姓氏小游戏
 */
public class Training08 {
    public static void main(String[] args) {
        char [] ns = getName();
        // 参照将0-19个姓氏分配给第一个数组(建议使用嵌套数组)
        // 依次分配给共20个数组(每个数组嵌套一个数组)
        char[][] pagesA = new char[19][19];
        pagesA = setPageA(ns);
        // todo 1.按顺序分配姓氏
        char[][] pagesB = new char[19][19];
        pagesB = setPageB(ns);
    }

    public static char[] getName(){
        String ns = "赵钱孙李周吴郑王冯陈褚卫蒋沈韩杨朱秦尤许何吕施张孔曹严华金魏陶姜戚谢邹喻柏水窦章云苏潘葛奚范彭郎鲁韦昌马苗凤花方俞任袁柳酆鲍史唐费廉岑薛雷贺倪汤滕殷罗毕郝邬安常乐于时傅皮卞齐康伍余元卜顾孟平黄和穆萧尹姚邵湛汪祁毛禹狄米贝明臧计伏成戴谈宋茅庞熊纪舒屈项祝董梁杜阮蓝闵席季麻强贾路娄危江童颜郭梅盛林刁钟徐邱骆高夏蔡田樊胡凌霍虞万支柯昝管卢莫经房裘缪干解应宗丁宣贲邓郁单杭洪包诸左石崔吉钮龚程嵇邢滑裴陆荣翁荀羊於惠甄曲家封芮羿储靳汲邴糜松井段富巫乌焦巴弓牧隗山谷车侯宓蓬全郗班仰秋仲伊宫宁仇栾暴甘钭厉戎祖武符刘景詹束龙叶幸司韶郜黎蓟薄印宿白怀蒲邰从鄂索咸籍赖卓蔺屠蒙池乔阴胥能苍双闻莘党翟谭贡劳逄姬申扶堵冉宰郦雍郤璩桑桂濮牛寿通边扈燕冀郏浦尚农温别庄晏柴瞿阎充慕连茹习宦艾鱼容向古易慎戈廖庾终暨居衡步都耿满弘匡国文寇广禄阙东欧殳沃利蔚越夔隆师巩厍聂晁勾敖融冷訾辛阚那简饶空曾毋沙乜养鞠须丰巢关蒯相查後荆红游";
        char [] name = new char[ns.length()];
        // 可以将String类理解成数组 每个字占用一个元素空间
        // 使用ns.charAt(i)获取索引i对应的元素
        // 通过for循环获取到所有的汉字姓氏 将他们放到char类型的数组name中
        for (int i = 0; i < ns.length(); i++) {
            name[i] = ns.charAt(i);
        }
        return  name;
    }

    /**
     * 将元素分配给20个二位数组
     * @param n
     * @return
     */
    public static char[][] setPageA(char[] n){
        char[][] arr = new char[19][19];
        for (int i = 0; i < 19; i++) {
            for (int j = 0; j < 19; j++) {
                arr[i][j] = n[j*20+i];
            }
            System.out.print(arr[i]);
            System.out.print("\n");
        }
        return arr;
    }
    public static char[][] setPageB(char[] n){
        char[][] arr = new char[19][19];
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr.length; j++) {
                arr[i][j] = n[i*20+j];
                System.out.print(arr[i][j]+"-");
            }
        }
        return  arr;
    }
}
